package com.zb.entity;

import cn.hutool.core.collection.CollectionUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * @Author WEN
 * @Date 2024/3/5 0005
 **/
@Data
@ApiModel("导出字段属性对象")
public class ExportFieldAttrVo {
    @ApiModelProperty(value = "类型：1-系统字段，" +
            "工单类：2-工单自定义字段，3-工单结单字段，4-工单评价字段" +
            "服务商类：2-服务商自定义字段"
    )
    private Integer type;

    @ApiModelProperty(value = "导出的字段名称")
    private String name;

    @ApiModelProperty(value = "关联值：type=1时，存code字符串值，其他时，存ID值")
    private String value;


    /**
     * List转Map
     * @param type 类型：1-系统字段，
     *             工单类：2-工单自定义字段，3-工单结单字段，4-工单评价字段；
     *             服务商类：2-服务商自定义字段；
     * @param attrVos
     * @return
     */
    public static Map<String, String> exportFieldAttrToMap(Integer type, List<ExportFieldAttrVo> attrVos) {
        if (CollectionUtil.isEmpty(attrVos)) {
            return new HashMap<>();
        }
        return attrVos.stream().filter(f -> Objects.equals(f.getType(), type)).collect(Collectors.toMap(ExportFieldAttrVo::getValue, ExportFieldAttrVo::getName));
    }
}
